def computeBounds(faces, total):
maxTotal = sum(faces)
result = []
for face in faces:
upperBound = min(face, total - (len(faces) - 1))
lowerBound = max(1, total - maxTotal + face)
result.append(face - (upperBound - lowerBound + 1))
return result
size, total = map(int, input().split(' '))
faces = [int(i) for i in input().split(' ')]
bounds = computeBounds(faces, total)
print(' '.join([str(bound) for bound in bounds]))
84. Largest Rectangle in Histogram | 60. Permutation Sequence |
42. Trapping Rain Water | 32. Longest Valid Parentheses |
Cutting a material | Bubble Sort |
Number of triangles | AND path in a binary tree |
Factorial equations | Removal of vertices |
Happy segments | Cyclic shifts |
Zoos | Build a graph |
Almost correct bracket sequence | Count of integers |
Differences of the permutations | Doctor's Secret |
Back to School | I am Easy |
Teddy and Tweety | Partitioning binary strings |
Special sets | Smallest chosen word |
Going to office | Color the boxes |
Missing numbers | Maximum sum |
13 Reasons Why | Friend's Relationship |